home *** CD-ROM | disk | FTP | other *** search
/ WINMX Assorted Textfiles / Ebooks.tar / Text - Mathematics - Numerical Mathematics and Computing (F).zip / rk45.f < prev    next >
Text File  |  2002-06-11  |  2KB  |  45 lines

  1. C
  2. C PAGE 326: NUMERICAL MATHEMATICS AND COMPUTING, CHENEY/KINCAID, 1985
  3. C
  4. C FILE: RK45.FOR
  5. C
  6. C RUNGE-KUTTA-FEHLBERG METHOD FOR SOLVING AN INITIAL VALUE PROBLEM (RK45,F)  
  7. C
  8.       SUBROUTINE RK45(F,T,X,H,EST)    
  9.       DATA  C21,C31,C32, C41,C42,C43, C51,C52,C53,C54,    
  10.      A      C61,C62,C63,C64,C65, A1,A3,A4,A5, B1,B3,B4,B5, B6, C40  
  11.      B  /0.25,0.09375,0.28125,
  12.      C  0.87938097405553,-3.2771961766045,3.3208921256258,
  13.      D  2.0324074074074,-8.0,7.1734892787524,-0.20589668615984,     
  14.      E  -0.2962962962963,2.0,-1.3816764132554,0.45297270955166,-0.275,
  15.      F  0.11574074074074,0.54892787524366,0.5353313840156,-0.2,     
  16.      G  0.11851851851852,0.51898635477583,0.50613149034201,-0.18,   
  17.      H  0.036363636363636, 0.92307692307692/    
  18.       F1 = H*F(T,X) 
  19.       F2 = H*F(T+ 0.25*H,X + C21*F1)  
  20.       F3 = H*F(T+0.375*H,X + C31*F1 + C32*F2)   
  21.       F4 = H*F(T+C40*H,X + C41*F1 + C42*F2 + C43*F3)  
  22.       F5 = H*F(T+H    ,X + C51*F1 + C52*F2 + C53*F3 + C54*F4)       
  23.       F6 = H*F(T+0.5*H,X + C61*F1 + C62*F2 + C63*F3 + C64*F4 + C65*F5)
  24.       X5 = X + B1*F1 + B3*F3 + B4*F4 + B5*F5 + B6*F6      
  25.       X  = X + A1*F1 + A3*F3 + A4*F4 + A5*F5    
  26.       T = T + H   
  27.       EST = ABS(X - X5)     
  28.       RETURN      
  29.       END 
  30.   
  31.       EXTERNAL F
  32.       DATA T/1.0/, X/2.0/, H/7.8125E-3/, NSTEP/72/
  33.       PRINT *,T,X 
  34.       DO 2 I=1,NSTEP
  35.       CALL RK45(F,T,X,H,EST)
  36.       PRINT *,T,X,EST 
  37.    2  CONTINUE
  38.       STOP
  39.       END 
  40.   
  41.       FUNCTION F(T,X) 
  42.       F = 2.0+(X-T-1.0)**2  
  43.       RETURN
  44.       END 
  45.